 
  

 






<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html>

<!-- Mirrored from www.javapractices.com/home/HomeAction.do by HTTrack Website Copier/3.x [XR&CO'2010], Sun, 12 Jun 2011 17:23:41 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=UTF-8"><!-- /Added by HTTrack -->
<head>
 <title>
  Java Practices -> Home
 </title>
 <link rel="stylesheet" type="text/css" href="../stylesheet8.css" media="all">
 
 <link rel="shortcut icon" href='../images/favicon.ico%3bjsessionid%3d4FCCB481C702D708A7360133D128E359' type="image/vnd.microsoft.icon">
 <meta name="description" content="Concise presentations of java programming practices, tasks, and conventions, amply illustrated with syntax highlighted code examples.">
 
 
 <meta name="keywords" content="java,java programming,java practices,java idiom,java style,java design patterns,java coding conventions">
 
</head>
 
<body>


<div class='menu-bar'>
 
  <a href='HomeAction-2.html' title='Table of Contents'>Home</a> |
  <a href='../vote/VoteSummaryAction.html' title='View Poll Results'>Poll</a> |
   
  <A href='../feedback/FeedbackAction451f.html?Operation=Show' title='Send Your Feedback'>Wiki</a> |
  <b><a href='../source/SourceAction.html' title='Grab Source Code'>Source Code</a></b><IMG class='no-margin' SRC="../images/goldstar.gif" ALT=""> |

  <a href='http://www.web4j.com/Java_Web_Application_Framework_Overview.jsp?From=1' title='Free Download - Java Web Application Framework'><b>WEB4J</b></a> |
  
  <a href='http://www.date4j.net/' title='Replacement for java.util.Date'><b>DATE4J</b></a> |

   <a href='../references/ReferencesAction.html' title='References'>Links</a>
   
  <form action='http://www.javapractices.com/search/SearchAction.do;jsessionid=4FCCB481C702D708A7360133D128E359' method='get' class='search-form'>
   <input type='text' name='SearchTerms' value="" size=12 maxlength=50 class='search'>
   <input type='submit' value="Search">
  </form>
 
</div>

<P>



  

 






<p class="display-messages">

 

 

</p>


<div class="main-layout">
 
   

 



<div class='page-title'>Collected Java Practices</div>





<div class='home-page-section'>
<b>javapractices.com</b> offers concise presentations of Java practices, tasks, and designs,
 illustrated with syntax-highlighted code examples. 
The code examples are available for <a href='../source/SourceAction-2.html'>download</a>.
 See below for <a href="#comments">user comments</a> on the site.

 <p class='quotation' >
   <table align="CENTER" CELLSPACING="0" CELLPADDING="3">
   <tr>
    <td align="left">
      <b>Science is the organized skepticism in the reliability of expert opinion.</b>
    </td>
   </tr>
   <tr>
     <td align="right">
      <em>- The Physics Teacher (Sep 1969)</em>, Richard Feynman
      </td>
   </tr>
   <tr>

    
    
    





   </tr>
  </table>
</p>

<div class='chapters'>
   <a href="#Servlets and JSPs"> Servlets and JSPs</a> |
   <a href="#Swing"> Swing</a> |
   <a href="#Exceptions"> Exceptions</a> |
   <a href="#Input-Output"> Input-Output</a> |
   <a href="#Databases"> Databases</a> |
   <a href="#Collections"> Collections</a> |
   <a href="#Overriding Object Methods"> Overriding Object Methods</a> |
   <a href="#Common Tasks"> Common Tasks</a> |
   <a href="#Common Design Patterns"> Common Design Patterns</a> |
   <a href="#Common Practices"> Common Practices</a> |
   <a href="#Inheritance"> Inheritance</a> |
   <a href="#More Common Practices"> More Common Practices</a> |
   <a href="#Assertions"> Assertions</a> |
   <a href="#Constructors"> Constructors</a> |
   <a href="#Serialization"> Serialization</a> |
   <a href="#Threads"> Threads</a>
</div>

</div>



 
   <a name='Servlets and JSPs'></a>
   <div class='page-section'>Servlets and JSPs</div>
    <table width="100%" align="CENTER"  border=0 CELLSPACING="0" CELLPADDING="3">
     <colgroup>
      <col width="50%">
      <col width="50%">
    </colgroup>
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction5f31.html?Id=188'>A Web App Framework - WEB4J</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction1c49.html?Id=109'>Always maintain HttpSessions </a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction0b8f.html?Id=140'>Application scope is multi-threaded</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionfbe8.html?Id=203'>Beware multilingual submit buttons</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction85b1.html?Id=217'>Beware of common hacks</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction9f4f.html?Id=116'>Beware of custom cookies</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction2c82.html?Id=201'>Beware of doubly escaped ampersands</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction0836.html?Id=226'>Beware of URL rewriting</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction3987.html?Id=198'>Choose form validation style carefully</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction00cb.html?Id=219'>Consider Controllers for redirects</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction17e9.html?Id=111'>Do not synchronize doGet, doPost</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction37f1.html?Id=95'>Emit flexible URLs</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionba81.html?Id=96'>Escape special characters</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction8130.html?Id=181'>Forward versus redirect</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction42fc.html?Id=112'>JSPs should contain only presentation logic</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionb638.html?Id=141'>Loss of data during restart</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction542c.html?Id=191'>Manage sessions closely</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActioncfcd.html?Id=98'>Measure web app performance</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction11d9.html?Id=93'>Minimize site response time</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction703a.html?Id=138'>Parse parameters into domain objects</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction9b6b.html?Id=177'>Pre-populate forms</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction159e.html?Id=175'>Prefer JSTL tags</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction24f9.html?Id=206'>Prefer UTF-8 in all layers</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActiond18f.html?Id=178'>Prevent self-linking</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction0df2.html?Id=107'>Refactor large Controllers </a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction2615.html?Id=137'>Repel invalid requests</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActioncd29.html?Id=220'>Reuse login page for errors</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionc3f2.html?Id=179'>Send trouble-ticket emails</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction2651.html?Id=232'>Serve binary content</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction1c75.html?Id=110'>Session-scope objects often Serializable</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction795f.html?Id=193'>Struts seems mediocre</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction5422.html?Id=218'>Understand details of FORM tags</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction3612.html?Id=202'>Use Cascading Style Sheets</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction4378.html?Id=222'>Use extensions for fine-grained security</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActiona7f6.html?Id=108'>Use Model-View-Controller framework</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionad3c.html?Id=176'>Use templates to standardize layout</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActiond957.html?Id=180'>Validate email addresses</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActiona6de.html?Id=97'>Validate generated HTML</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActiond8aa.html?Id=94'>Web usability guidelines</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction4762.html?Id=221'>Wrap file upload requests</a>
        
        
      </td>
     </tr>
    
   
   </table>
 
   <a name='Swing'></a>
   <div class='page-section'>Swing</div>
    <table width="100%" align="CENTER"  border=0 CELLSPACING="0" CELLPADDING="3">
     <colgroup>
      <col width="50%">
      <col width="50%">
    </colgroup>
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction60fc.html?Id=170'>A Swing App - StocksMonitor</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionb4fd.html?Id=159'>Actions</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction5c4c.html?Id=169'>Align menu items</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction06a5.html?Id=158'>Change theme</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction08d2.html?Id=236'>Consider JGoodies Forms for layouts</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction6ca2.html?Id=230'>Don't bury dialogs</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction5982.html?Id=228'>Don't subclass JDialog or JFrame</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction167e.html?Id=163'>Filter table rows</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction789c.html?Id=161'>Indicate table sort</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction11fc.html?Id=167'>Input dialogs</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction9163.html?Id=242'>Launch other applications</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionff7e.html?Id=166'>Layout Managers</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction992c.html?Id=148'>Look and Feel guidelines</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction8210.html?Id=231'>Minimal Swing application</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActiond357.html?Id=156'>Observers and listeners</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction7009.html?Id=154'>Preferences dialogs</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActione4c6.html?Id=229'>Provide an uncaught exception handler</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActione43f.html?Id=168'>Render table cells</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActiond0e1.html?Id=162'>Sort table rows</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction028c.html?Id=149'>Splash screen</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction7910.html?Id=150'>Standardized dialogs</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction0e99.html?Id=165'>Swing in general</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction3abb.html?Id=153'>Swing threads</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction2994.html?Id=152'>Swing utility tasks</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction6407.html?Id=160'>Timers</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction26c0.html?Id=157'>Using JavaHelp</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction54be.html?Id=155'>Using preferences</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActiond281.html?Id=233'>Verify input with Model Objects</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActioncded.html?Id=151'>Verify input with regular expressions</a>
        
        
       </td>
      
     
   
   </table>
 
   <a name='Exceptions'></a>
   <div class='page-section'>Exceptions</div>
    <table width="100%" align="CENTER"  border=0 CELLSPACING="0" CELLPADDING="3">
     <colgroup>
      <col width="50%">
      <col width="50%">
    </colgroup>
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActioncd9b.html?Id=171'>Avoid @throws in javadoc</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionc388.html?Id=16'>Avoid empty catch blocks</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionb002.html?Id=27'>Be specific in throws clause</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction5ee8.html?Id=235'>Beware of unknown root causes</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction5ff3.html?Id=129'>Checked versus unchecked exceptions</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction62d0.html?Id=120'>Exception translation</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction49be.html?Id=19'>Exceptions and control flow</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActione028.html?Id=25'>Finally and catch</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionf005.html?Id=44'>Javadoc all exceptions</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction3af3.html?Id=130'>Pass all pertinent data to exceptions</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction5ab4.html?Id=78'>Stack trace as String</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction69dc.html?Id=190'>Use template for repeated try-catch</a>
        
        
      </td>
     </tr>
    
   
   </table>
 
   <a name='Input&#045;Output'></a>
   <div class='page-section'>Input&#045;Output</div>
    <table width="100%" align="CENTER"  border=0 CELLSPACING="0" CELLPADDING="3">
     <colgroup>
      <col width="50%">
      <col width="50%">
    </colgroup>
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActiona0d7.html?Id=8'>Always close streams</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActiona3d0.html?Id=122'>Buffering usually appropriate</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction83bb.html?Id=79'>Console input</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction848c.html?Id=57'>Reading and writing Serializable objects</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction12d8.html?Id=42'>Reading and writing text files</a>
        
        
       </td>
      
     
   
   </table>
 
   <a name='Databases'></a>
   <div class='page-section'>Databases</div>
    <table width="100%" align="CENTER"  border=0 CELLSPACING="0" CELLPADDING="3">
     <colgroup>
      <col width="50%">
      <col width="50%">
    </colgroup>
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActiona3f5.html?Id=192'>Business identifiers as String</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction12eb.html?Id=75'>Connection pools</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction1a25.html?Id=124'>Consider data layer tools</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionb57d.html?Id=172'>Consider using standard SQL</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActiondfce.html?Id=199'>Consider wrapper classes for optional data</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction564b.html?Id=66'>Data access objects</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionf6c1.html?Id=77'>Data exception wrapping</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction0faa.html?Id=211'>Data is king</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction7bff.html?Id=106'>Do not perform database tasks in code </a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionf9c8.html?Id=183'>Encapsulate connections</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActione914.html?Id=105'>Keep SQL out of code</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActiona657.html?Id=212'>Prefer PreparedStatement</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction400e.html?Id=118'>Read-write locks</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction0d22.html?Id=76'>Reduce database code duplication</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction2b10.html?Id=61'>Remember the basics of database design</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction2dbf.html?Id=184'>Simplify database operations</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction9e16.html?Id=200'>Try pseudo-persistence for mock ups</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction3b51.html?Id=189'>Use template for transactions</a>
        
        
      </td>
     </tr>
    
   
   </table>
 
   <a name='Collections'></a>
   <div class='page-section'>Collections</div>
    <table width="100%" align="CENTER"  border=0 CELLSPACING="0" CELLPADDING="3">
     <colgroup>
      <col width="50%">
      <col width="50%">
    </colgroup>
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionc6f5.html?Id=65'>Choosing the right Collection</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActione066.html?Id=173'>Encapsulate collections</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction5e5f.html?Id=88'>Iterate without an index</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction55c9.html?Id=39'>Prefer Collections over older classes</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction852c.html?Id=125'>Two ways of using Iterator</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction23e0.html?Id=196'>Use for-each liberally</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction921b.html?Id=26'>Use interface references to Collections</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction830f.html?Id=9'>Use standard Collections</a>
        
        
      </td>
     </tr>
    
   
   </table>
 
   <a name='Overriding Object Methods'></a>
   <div class='page-section'>Overriding Object Methods</div>
    <table width="100%" align="CENTER"  border=0 CELLSPACING="0" CELLPADDING="3">
     <colgroup>
      <col width="50%">
      <col width="50%">
    </colgroup>
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActioned8c.html?Id=71'>Avoid clone</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction3eed.html?Id=10'>Implementing compareTo</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction1deb.html?Id=17'>Implementing equals</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction78db.html?Id=28'>Implementing hashCode</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionc3b3.html?Id=55'>Implementing toString</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction691e.html?Id=24'>Never rely on finalize</a>
        
        
      </td>
     </tr>
    
   
   </table>
 
   <a name='Common Tasks'></a>
   <div class='page-section'>Common Tasks</div>
    <table width="100%" align="CENTER"  border=0 CELLSPACING="0" CELLPADDING="3">
     <colgroup>
      <col width="50%">
      <col width="50%">
    </colgroup>
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActiond1f0.html?Id=131'>Arrays as String </a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction255b.html?Id=82'>Clipboard copy and paste</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction5f47.html?Id=243'>Command line operations</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionb213.html?Id=207'>Compare and sort Strings</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionb30e.html?Id=3'>Copy an array </a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction95c3.html?Id=18'>Determine if Strings are equal</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction145a.html?Id=146'>Examine bytecode</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction32bb.html?Id=147'>Fetch web page and header</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActiond084.html?Id=62'>Generate random numbers</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction799b.html?Id=127'>Get database connection</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActione704.html?Id=83'>Get size of object in memory</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction7d07.html?Id=239'>Implement code tables</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionb69d.html?Id=73'>Internationalization</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction2316.html?Id=143'>Logging messages</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction8240.html?Id=36'>Measure application performance</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionaa3f.html?Id=225'>Modernize old code</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActioncc40.html?Id=87'>Parse text</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction3c83.html?Id=103'>Pattern-match lines of a file</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionc92c.html?Id=238'>Read jar version information</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction693b.html?Id=43'>Recovering resources</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction7a51.html?Id=68'>Recursive file listing</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction18a7.html?Id=80'>Replace a substring</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction583d.html?Id=13'>Representing money</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction895b.html?Id=144'>Send an email</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActiondd78.html?Id=85'>Time execution speed</a>
        
        
       </td>
      
     
   
   </table>
 
   <a name='Common Design Patterns'></a>
   <div class='page-section'>Common Design Patterns</div>
    <table width="100%" align="CENTER"  border=0 CELLSPACING="0" CELLPADDING="3">
     <colgroup>
      <col width="50%">
      <col width="50%">
    </colgroup>
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction8aa5.html?Id=128'>Abstract Factory</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionae2d.html?Id=139'>Command objects</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction8d16.html?Id=21'>Factory methods</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActiond838.html?Id=29'>Immutable objects</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction88f9.html?Id=34'>Lazy initialization</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActiond08d.html?Id=187'>Model Objects</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction5a93.html?Id=237'>Plugin Factory</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction79e9.html?Id=40'>Private constructor</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction4934.html?Id=46'>Singleton</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActione01b.html?Id=164'>Template method</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction2161.html?Id=1'>Type-Safe Enumerations</a>
        
        
       </td>
      
     
   
   </table>
 
   <a name='Common Practices'></a>
   <div class='page-section'>Common Practices</div>
    <table width="100%" align="CENTER"  border=0 CELLSPACING="0" CELLPADDING="3">
     <colgroup>
      <col width="50%">
      <col width="50%">
    </colgroup>
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction56bf.html?Id=227'>Avoid basic style errors</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionb2d5.html?Id=224'>Avoid raw types</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction3d83.html?Id=31'>Beware of instanceof operator</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction03b1.html?Id=2'>Class for constants</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction59d6.html?Id=74'>Construct classes from the outside in</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction7844.html?Id=38'>Do not break portability</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction620e.html?Id=126'>Don't declare local variables before use</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction5e53.html?Id=22'>Fields should usually be private</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActiona166.html?Id=32'>Interface for constants</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionc857.html?Id=41'>Know the core libraries</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction23a3.html?Id=123'>Minimize ripple effects</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionff16.html?Id=58'>Naming conventions</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction6a39.html?Id=37'>Output parameters</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction311e.html?Id=136'>Separate public and private members</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction851d.html?Id=4'>String concatenation does not scale</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction7ce2.html?Id=240'>Tag or marker interfaces</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionb3ca.html?Id=30'>Uncommon classes need explicit imports</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction4b04.html?Id=223'>Use @Override liberally</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction5438.html?Id=241'>Use CVS or other source code control</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction50dc.html?Id=23'>Use final liberally</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionebc1.html?Id=60'>Use javadoc liberally</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionda46.html?Id=195'>Use static imports rarely</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionc88a.html?Id=86'>Use System.exit with care</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction5d11.html?Id=5'>Validate method arguments</a>
        
        
      </td>
     </tr>
    
   
   </table>
 
   <a name='Inheritance'></a>
   <div class='page-section'>Inheritance</div>
    <table width="100%" align="CENTER"  border=0 CELLSPACING="0" CELLPADDING="3">
     <colgroup>
      <col width="50%">
      <col width="50%">
    </colgroup>
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionc791.html?Id=72'>Consider composition instead of subclassing</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionaf17.html?Id=69'>Designing for subclassing</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction18c3.html?Id=89'>Overridable methods need special care</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction5368.html?Id=90'>Remember styles of inheritance</a>
        
        
      </td>
     </tr>
    
   
   </table>
 
   <a name='More Common Practices'></a>
   <div class='page-section'>More Common Practices</div>
    <table width="100%" align="CENTER"  border=0 CELLSPACING="0" CELLPADDING="3">
     <colgroup>
      <col width="50%">
      <col width="50%">
    </colgroup>
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction772f.html?Id=134'>Avoid null if possible</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction47e0.html?Id=210'>Beware of DecimalFormat</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionb0f5.html?Id=213'>Beware of floating point numbers</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionb2ab.html?Id=91'>Clarifying method</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionb533.html?Id=115'>Coding conventions</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionb2b7.html?Id=104'>Compile regular expressions once</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionc981.html?Id=64'>Conditional compile</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction85d5.html?Id=132'>Consider code generators</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction967f.html?Id=81'>Consider immutable forms for dates</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction4d0e.html?Id=63'>Conventional name for return value</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction79f1.html?Id=15'>Defensive copying</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction63b6.html?Id=194'>Design by Contract</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActioncdb0.html?Id=244'>Don't use tab characters</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction66f0.html?Id=20'>Extra space in argument list</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction8105.html?Id=56'>Generating unique IDs</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction01e5.html?Id=214'>Include 'from', exclude 'to'</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActione309.html?Id=114'>Multiple return statements</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction5f93.html?Id=119'>Overloading can be tricky</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionfc56.html?Id=205'>Package by feature, not layer</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionf2d7.html?Id=216'>Passwords never in clear text</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActiona124.html?Id=59'>Prefer empty items to null ones</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction9706.html?Id=204'>Quote dynamic text when logging</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction3d35.html?Id=92'>Self-encapsulate fields</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction0450.html?Id=174'>Test using main method</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction7ee5.html?Id=208'>Try alternatives to ResourceBundle</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionec62.html?Id=234'>Use a fake system clock</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActiond5a5.html?Id=33'>Use a testing framework (JUnit)</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction55f0.html?Id=135'>Use Ant for build scripts</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionf6e8.html?Id=197'>Use boxing with care</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction37c7.html?Id=186'>Use enums to restrict arguments</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction0d31.html?Id=6'>Validate state with class invariants</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction0ec8.html?Id=209'>Validation belongs in a Model Object</a>
        
        
      </td>
     </tr>
    
   
   </table>
 
   <a name='Assertions'></a>
   <div class='page-section'>Assertions</div>
    <table width="100%" align="CENTER"  border=0 CELLSPACING="0" CELLPADDING="3">
     <colgroup>
      <col width="50%">
      <col width="50%">
    </colgroup>
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionbf65.html?Id=100'>Assert is for private arguments only</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActionfbf8.html?Id=102'>Assert use cases</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction45c1.html?Id=101'>Assertions in general</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction8d5e.html?Id=99'>Force enabling of assertions</a>
        
        
      </td>
     </tr>
    
   
   </table>
 
   <a name='Constructors'></a>
   <div class='page-section'>Constructors</div>
    <table width="100%" align="CENTER"  border=0 CELLSPACING="0" CELLPADDING="3">
     <colgroup>
      <col width="50%">
      <col width="50%">
    </colgroup>
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionfbbc.html?Id=84'>Avoid JavaBeans style of construction</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction9f39.html?Id=142'>Beware of mistaken field redeclares</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionddc6.html?Id=113'>Construct Object using class name</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction19ff.html?Id=11'>Constructors in general</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction6581.html?Id=215'>Constructors shouldn't call overridables</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction6f4f.html?Id=12'>Copy constructors</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction9b86.html?Id=14'>Initializing fields to 0-false-null is redundant</a>
        
        
       </td>
      
     
   
   </table>
 
   <a name='Serialization'></a>
   <div class='page-section'>Serialization</div>
    <table width="100%" align="CENTER"  border=0 CELLSPACING="0" CELLPADDING="3">
     <colgroup>
      <col width="50%">
      <col width="50%">
    </colgroup>
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionb750.html?Id=45'>Implementing Serializable</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActione102.html?Id=70'>Serialization and subclassing</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionbf99.html?Id=121'>Some classes need readResolve</a>
        
        
       </td>
      
     
   
   </table>
 
   <a name='Threads'></a>
   <div class='page-section'>Threads</div>
    <table width="100%" align="CENTER"  border=0 CELLSPACING="0" CELLPADDING="3">
     <colgroup>
      <col width="50%">
      <col width="50%">
    </colgroup>
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActione69c.html?Id=52'>Avoid ThreadGroup</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicActiond2c3.html?Id=117'>Data integrity first, liveness second</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction234f.html?Id=48'>Document thread safety</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction4826.html?Id=50'>Launch thread is just another user thread</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction7721.html?Id=51'>Objects communicating across threads</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction5ade.html?Id=35'>Remember the types of locking</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicAction0170.html?Id=47'>Stop threads through cooperation</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction2ae3.html?Id=49'>Synchronize access to mutable fields</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActiona6f3.html?Id=67'>Synchronized is implementation detail</a>
        
        
       </td>
      
     
   
     
     
      <td>
       
       <a href='../topic/TopicAction8b10.html?Id=53'>Thread priorities are not portable</a>
        
        
      </td>
     </tr>
    
   
     
      <tr>
       <td>
        
        <a href='../topic/TopicActionc150.html?Id=54'>Use Timer to schedule periodic tasks </a>
        
        
       </td>
      
     
   
   </table>
 

<table>
<tr>
 <td class='page-section' align=center colspan=2>
 <b><font size="+1"><a name="comments">User Comments</a></font></b>
 </td>
</tr>
<tr><td colspan=2><tt>"I just wanted to take a second to say that this site is really useful. It's not all that often that I come across a site that has some good design information without a bunch of boring fluff.  It reminds me of reading <a href="http://www.amazon.com/exec/obidos/ASIN/0321356683/ref=nosim/javapractices-20"><em>Effective Java</em></a>, which I would consider to be one of the best books I've ever picked up."</tt></td></tr>
<tr><td colspan=2><tt>"I love this site. It's one of the best laid out and most useful sites that I've ever used. Thank you very much."</tt></td></tr>
<tr><td colspan=2><tt>"First I have to say, what a great site. We were thinking about starting something similar inside the company, but what better news than to hear that someone has done it for us. Keep up the great work."</tt></td></tr>
<tr><td colspan=2><tt>"I do think this site is excellent. Keep it up."</tt></td></tr>
<tr><td colspan=2><tt>"Awesome for a beginner like me!"</tt></td></tr>
<tr><td colspan=2><tt>"A Great Site!!! I refer to it often. I really enjoy your common sense and straight forward, flexible approach to these issues. Thanks!"</tt></td></tr>
<tr><td colspan=2><tt>"Thanks for a great site, it really stands out from the crowd. Keep up the good work!"</tt></td></tr>
</table>
 
 
</div>

  

 





<div align='center' class='legalese'>  
&copy; 2011 Hirondelle Systems |
<a href='../source/SourceAction.html'><b>Source Code</b></a><IMG class='no-margin' SRC="../images/goldstar.gif" ALT=""> |
<a href="mailto:webmaster@javapractices.com">Contact</a> |
<a href="http://creativecommons.org/licenses/by-nc-sa/1.0/">License</a> |
<a href='../apps/cjp.rss%3bjsessionid%3d4FCCB481C702D708A7360133D128E359'>RSS</a>
<!-- ukey="2AC36CD2" -->
<!-- ckey="16DF3D87" -->
<br>

 Individual code snippets can be used under this <a href='../LICENSE.txt'>BSD license</a> - Last updated on June 6, 2010.<br>
 Over 150,000 unique IPs last month - <span title='Java Practices 2.6.5, Mon May 16 00:00:00 EDT 2011'>Built with</span> <a href='http://www.web4j.com/'>WEB4J</a>.<br>
 - In Memoriam : Bill Dirani -
</div>

<script src="../../www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-2633428-1";
urchinTracker();
</script>



</body>

<!-- Mirrored from www.javapractices.com/home/HomeAction.do by HTTrack Website Copier/3.x [XR&CO'2010], Sun, 12 Jun 2011 17:25:18 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=UTF-8"><!-- /Added by HTTrack -->
</html>
